package 剑指offer;

import java.util.ArrayList;
import java.util.List;

public class p57_II和为s的连续正数序列 {
    public int[][] findContinuousSequence(int target) {
        //滑动窗口！！！
        List<int[]> res=new ArrayList<>();

        if (target<3) {
            return new int[0][];
        }

        int left=1;
        int right=2;
        int curSum=3;
        while (left<right) {
            int[] ans=new int[right-left+1];
            if (curSum==target) {
                for (int i=left;i<=right;i++) {
                    ans[i-left]=i;
                }
                res.add(ans);
            }

            if (curSum>=target) {
                curSum=curSum-left;
                left++;
            }else {
                right++;
                curSum=curSum+right;
            }
        }

        return res.toArray(new int[0][]);
        //toArray(new int[0][])能够运行,是因为java做了优化，能动态生成对应大小的数组，是官方建议的书写方式，能避免某些并发问题并且效率更高
        //return res.toArray(new int[res.size()][]);  也行
    }
}
